Conventional adaptive bit rate (ABR) technology can be used to transmit audio and/or video streams to a decoder device. As a simple example, a network environment can include a server, a communication link, and a client. The client can include the decoder. During operation, as its name suggests, the decoder decodes a received data stream from the server and initiates playback of respective content on a playback device.
In accordance with adaptive bit rate technology, the bit rate of transmitting data to the decoder adapts (such as every few seconds) depending on available network bandwidth or other resource bottleneck. As an example, the communication link over which a data stream is transmitted to the decoder (at the client) may experience congestion. In such an instance, the bandwidth for conveying data over the network may significantly drop.
In response to detecting a condition such as decrease in bandwidth availability, a server can be notified by the client to adaptively change a level of quality or bit rate of data transmitted on a respective link to a subscriber playing back the transmitted content. In other words, the client can request data encoded at a lower bit rate or level of quality in response to detecting network congestion.
Transmitting the data at the lower bit rate or level of quality during congestion, as opposed to dropping packets transmitted to the decoder, enables the subscriber to continue playback of the content without interruption, albeit at a lower level of playback quality when congestion is detected. Adaptive bit rate technology is useful because a subscriber typically would like to playback streaming content without pauses, even though a media player must occasionally playback content at lower levels of quality.
In accordance with further conventional systems, as mentioned above, a server can be configured to support transmission of content encoded at different levels of quality to subscribers. Notably, there is a cost associated with storing the content encoded at the different levels of quality. For example, the cost of storing the content encoded at lower levels of quality is relatively low because a small amount of storage is needed to store such data. The cost for storing the content encoded at higher levels of quality can be substantially higher because more storage space is needed to store such encoded content.